home *** CD-ROM | disk | FTP | other *** search
Text File | 1987-06-11 | 20.2 KB | 1,000 lines |
- ; ** 2 PIXEL ACCURACY SINE WAVE BY TANGO OF CRYPTIC **
- ; ** ONLY SPREAD SOURCE TO CRYPTIC MEMBERS **
-
- opt c-
- section blitter,code_c Chip Ram please !!
- include df0:definitions Give me some hardware reggies
- include df0:macros Give me some macros
-
-
- ;LOCAL CONSTANTS
-
- icra equ $bfed01
- allocmem =-30-168
- freemem =-30-180
- fontmemory =4000
-
- TAKEOVER:
-
- LEA custom,a5
- LEA GFXLIB(PC),a1 Point to 'graphics.library'
- MOVEQ #0,D0 Doesn't matter which version
- MOVE.L 4.w,a6 EXECBASE
- jsr -132(a6) task switching off (forbid)
- JSR -$228(a6) Openlibrary
- MOVE.L D0,GFXBASE Store library address
- jsr Cryptic_init
-
- ;Now put the graphic addresses in the CopperList
-
-
- move.l #sprite,d1
- move.w d1,sp0lo+2
- swap d1
- move.w d1,sp0hi+2
-
-
- move.l GFXBASE,d0 Move gfxbase offset to d0
- MOVE.L D0,A6
- MOVE.W #$80,dmacon(a5) Turn off copper whilst changing it
- MOVE.L $32(A6),WBCOPPER Store old (WBench) copper address
- MOVE.L #OURCOPPER,$32(A6) Point to new copper list (our own)
- MOVE.W #$8080,dmacon(a5) re-enable copper
-
- MOVE.W #$8010,intena(a5)
- MOVE.L $6c,old Save work bench interrupt
- MOVE.L #LEV3,$6c This sets up a level 3 interrupt
- move.w intenar(a5),systemints
- move.b #%01111111,icra Kill keyboard
-
- WAIT:
- BTST #6,$BFE001 This waits for the left
- BNE.S WAIT mouse button to be pressed
- move.l 4.w,a6 EXECBASE
- MOVE.L old,$6c Restore system interrupts
- MOVE.L GFXBASE,A6
- MOVE.W #$80,dmacon(a5) Disable DMA
- MOVE.L WBCOPPER,$32(A6) Restore old copperlist
- MOVE.W #$8080,dmacon(a5) Enable DMA
- move.w systemints,d0 Systems interrupt
- or.w #$c000,d0
- move.w d0,intena(a5) Enable OS interrupts
- move.b #%10011011,icra Enable keyboard
- clr.w $dff0a8 Clear music
- clr.w $dff0b8
- clr.w $dff0c8
- clr.w $dff0d8
- move.w #$f,$dff096
- CLR.L D0
- rts
-
-
- ERROR:
- move.l 4.w,a6 Get EXECBASE
- jsr -138(a6) Permit ( multi-tasking on )
- moveq #0,d0 Clear d0
- RTS Return to AmigaDOS
-
-
- ;This is the NEW level 3 interrupt
-
- LEV3:
- MOVEM.L d0-d7/a0-a6,-(sp) Save all registers to the stack
- lea custom,a5
- AND #$10,intreqr(a5) Check if interrupt is from Copper
- BNE out
- move.w #$8010,$9c
-
- bsr try_sin
- bsr testscroll
-
- move.l sin_screen,d1 Bitplane memory address
- move.w d1,bp1lo+2
- swap d1
- move.w d1,bp1hi+2
- bsr move_stars
- bsr equalizers
- bsr Cryptic_music
-
- out:
- MOVEM.L (sp)+,d0-d7/a0-a6 Restore the registers
- DC.W $4ef9 hex value for JMP instruction
- old:
- DC.L 0 will jump to normal interrupt
-
-
- equalizers:
- clr.l d2
- move.w Cryptic_aud1temp,d2
- and.w #$f00,d2
- move.w d2,eq1+2
-
- clr.l d2
- move.w Cryptic_aud2temp,d2
- and.w #$ff0,d2
- ror.w #4,d2
- move.w d2,eq2+2
-
- clr.l d2
- move.w Cryptic_aud3temp,d2
- and.w #$0f0,d2
- move.w d2,eq3+2
-
- clr.l d2
- move.w Cryptic_aud4temp,d2
- and.w #$00f,d2
- move.w d2,eq4+2
- rts
-
- ; ** Move the sprites **
-
- move_stars:
-
- sub.b #$1,x+1
- sub.b #$2,x+9
- sub.b #$1,x+17
- sub.b #$3,x+25
- sub.b #$2,x+33
- sub.b #$4,x+41
- sub.b #$2,x+49
- sub.b #$1,x+57
- sub.b #$3,x+65
- sub.b #$1,x+73
- sub.b #$2,x+81
- sub.b #$4,x+89
- sub.b #$3,x+97
- sub.b #$2,x+105
- sub.b #$1,x+113
- sub.b #$4,x+121
- sub.b #$3,x+129
- sub.b #$3,x+137
- sub.b #$2,x+145
- sub.b #$4,x+153
- sub.b #$1,x+161
- sub.b #$3,x+169
- sub.b #$1,x+177
- sub.b #$2,x+185
- sub.b #$4,x+193
- sub.b #$1,x+201
- sub.b #$3,x+209
- sub.b #$1,x+217
- sub.b #$2,x+225
- sub.b #$2,x+233
- rts
-
-
-
-
- ; ** Double Buffer The Screen **
-
- Buff:
- Eor.l #10240,Tango
- Move.l Tango,D1
- Move.l #SinePlane,d2
- Add.l D1,d2
- Move.l D2,Sin_Screen
- Rts
-
-
- ; ** THE SCROLL ROUTINE **
-
- testscroll:
- tst.l stopper
- beq.s scroll
- sub.l #1,stopper
- rts
- scroll:
- cmp.l #15*4,val Blitshifted all <<<
- blo.s coarse_scroll_it No then get doing it !!
- bsr blit_char Blit letter to screen
- clr.l val Reset index
- coarse_scroll_it:
- bsr coarse Scroll all line
- rts
-
-
- ; ** BLIT LETTER ON THE SCREEN **
-
- blit_char
- jsr text
- lea custom,a5 Get custom chip address
- move.l screenx,a0 Can~t see this picture !!
- move.l #font,a1 Put font in blitter source
- add.l d1,a1
- blit_test:
- btst #14,$dff002 Blitter busy !!!
- bne blit_test Lets wait till she finishes !
- move.w #$ffff,bltafwm(a5) Mask (DON'T NEED ONE)
- move.w #$ffff,bltalwm(a5) Mask (DON'T NEED ONE)
- move.l a0,bltdpth(a5) Blitter dest D (BOTTOM OF SCREEN)
- move.l a1,bltapth(a5) Blitter source A (SCROLLING FONT)
- move.w #38,bltamod(a5) Modulo (20-1)*2
- move.w #38,bltdmod(a5) Modulo (20-1)*2
- move.w #$9f0,bltcon0(a5) Minterms D=A
- clr.w bltcon1(a5) Set Ascending mode
- move.w #16*64+1,bltsize(a5) Blit size (SIZE OF FONT)
- rts Return
-
-
- ; ** BLITSHIFT THE ENTIRE SCROLL LINE (BETTER THAN USING THE HARDWARE).
-
- coarse:
- lea custom,a5
- move.l screenx,a0 ; Can~t see this picture !!
- move.l a0,a1
- add.l #2,a1
- blit_wait:
- btst #14,$dff002
- bne blit_wait
- incl #4,val ; (1 for slower)
- move #15,d7 ; Amount of pixels to shift(15 for slow)
- ror #4,d7 ; Set to correct bits (12-15)
- or #%100111110000,d7
- move.l #-1,bltafwm(a5)
- move.l a1,bltapth(a5)
- move.l a0,bltdpth(a5)
- move.w #0,bltamod(a5)
- move.w #0,bltdmod(a5)
- move.w d7,bltcon0(a5)
- move.w #80*64+20,bltsize(a5)
- rts
-
-
- ; ** BLITTER CLEAR WHERE THE SINE SCROLL HAS JUST BEEN **
-
- CLEAR:
- Move.l Sin_Screen,a0
- wate
- btst #14,$dff002
- bne.s wate
- Move.l a0,Bltdpth(a5)
- Move #0,Bltdmod(a5)
- Move.l #$1f00000,Bltcon0(a5)
- Move #150*64+20,Bltsize(a5)
- Rts
-
-
- try_sin:
- Bsr buff
- bsr clear
- Move.l Table1,A3
- Move.b (A3),d1
- Cmp.b #$ff,d1
- Bne ItsOkYa
- Move.l #SinTab,A3
- ItsOkYa
- Add.l hi_amplitude,A3
- Move.l a3,Table1
- Move.l A3,Table
- lea custom,a5
- move.l screenx,a0 ; Source A
- move.l #20,d4 ; Number of chars along screen
- clr.l d5
- clr.l d6
- ban:
- move.w #%1100000000000000,d3
- move.l #7,d2
- blit_test0:
- btst #14,$dff002
- bne blit_test0
- move.l sin_screen,a1
- bsr get_sinvalue
- move.w d3,bltafwm(a5)
- move.w d3,bltalwm(a5)
- move.l a1,bltdpth(a5)
- move.l a1,bltbpth(a5)
- move.l a0,bltapth(a5)
- move.w #38,bltamod(a5)
- move.w #38,bltdmod(a5)
- move.w #38,bltbmod(a5)
- move.w #$dfc,bltcon0(a5)
- clr.w bltcon1(a5)
- move.w #16*64+1,bltsize(a5)
- lsr.w #2,d3
- dbf d2,blit_test0
- add.l #2,a0 ; Get next letter along
- add.l #2,d6
- dbf d4,ban
- rts
-
- get_sinvalue:
- Clr.l D5
- Move.l Table,A3
- Move.b (A3),d5
- cmp.b #$ff,d5
- bne aslam
- Move.l #SinTab,A3
- Move.b (a3),d5
- Aslam
- Add.l lo_amplitude,A3
- Move.l A3,Table
- mulu #40,d5
- add.l d5,a1
- Add.l D6,A1
- rts
- Table1: Dc.l SinTab
- table: dc.l sintab
- sintab:
- dc.b $3C,$3F,$42,$46,$49,$4C,$50,$53,$56,$59
- dc.b $5C,$5F,$61,$64,$67,$69,$6B,$6D,$6F,$71
- dc.b $72,$73,$75,$76,$76,$77,$77,$77,$77,$77
- dc.b $77,$76,$76,$75,$73,$72,$71,$6F,$6D,$6B
- dc.b $69,$67,$64,$61,$5F,$5C,$59,$56,$53,$50
- dc.b $4C,$49,$46,$42,$3F,$3C,$38,$35,$31,$2E
- dc.b $2B,$27,$24,$21,$1E,$1B,$18,$16,$13,$10
- dc.b $E,$C,$A,$8,$6,$5,$4,$2,$1,$1
- dc.b $0,$0,$0,$0,$0,$0,$1,$1,$2,$4
- dc.b $5,$6,$8,$A,$C,$E,$10,$13,$16,$18
- dc.b $1B,$1E,$21,$24,$27,$2B,$2E,$31,$35
- dc.b $38,255
- EVEN
-
-
- ; ** CHARACTER DECODER ROUTINE **
-
- text:
- move.l acurent,a2 Get message
- clr.l d1
- move.b (a2)+,d1 Update it
- move.b d1,letter Store in offset
- cmp.b #255,d1 Check for end of message
- beq.w rst_text If equal, then reset
- cmp.b #254,d1
- beq stop
- sub.l #32,d1 Subract 32 (ie space)
- asl d1 Times by 2
- move.l a2,acurent Update acurent
- CMP.B #"4",letter Is letter "K" or larger
- BPL.s add_more If larger then add on
- rts Return
- add_more:
- CMP.B #"H",letter Is letter "U" or larger
- BPL.S add_more2 If larger then add on
- add.l #40*15,d1 Get next line down (KLMNOPQRST)
- rts
- add_more2:
- add.l #40*30,d1 Get next line down (UVWXYZ0123)
- rts
- rst_text:
- move.l #0,d1
- move.l #message,d2 Get begining of text
- move.l d2,acurent Reset to begining
- rts Return
- stop:
- move.l #0,d1
- add.l #1,acurent
- move.l #150,stopper
- rts
-
- message:
-
- ; 254=STOP,255=END.
-
- DC.B " CRYPTIC ARE BACK WITH ANOTHER COMP THIS TIME BROUGHT TO"
- DC.B " YOU BY TANGO AND DONATELLO OF CRYPTIC"
- DC.B " QUICK CREDITS GO TO CODING BY "
- DC.B " TANGO ",254
- DC.B " MUSIC COMPOSED BY "
- DC.B " DONATELLO ",254," "
- DC.B " PERSONAL GREETZ FROM TANGO GO TO ........"
- DC.B " GRAEME OF ANNIHILATORS (KEEP SENDING FAST MATE) MR PRACTICE (I'LL SEND YOU MY LIST SOON MATE) EBONY (HOPE YOU ENJOYED YOUR HOLS)"
- DC.B " R-TYME (WE'LL HAVE A LAUGH IN BLACKPOOL WITH ALL THE OTHER CRYPTIC MEMBERS)"
- DC.B " PERSONAL GREETZ FROM DONATELLO GO TO ...... "
- DC.B " SHUI (HOW DID YOU LIKE THE LAST PACKAGE!!!!),CLAIRVOYANT(NICE PACKAGE!!)"
- DC.B " BRAINWAVE YOU FUCKIN LAME TWAT FUCK YOU AND YOUR BIRD IN SOUTHPORT!!!!!! "
- DC.B " KISS MY ARSE!!! HI TO PETE OF AVENGER!!! ALSO A BIG FUCKOFF TO STEVE LEA YOU FUCKIN LAME BASTARD(YOUR SLOW AS FUCK)!!"
- DC.B " CRYPTIC MEGA HOT COOL SIZZLING GREETZ TO ALL THESE COOL GUYZ....... "
- DC.B " ACETEAM ACIDFORCE ACCUMULATORS ADEPT ALLIGATA ANARCHY APEX ARMARDA ICELAND AUTOMATION BURNING INDEPENDENCE CADCAM CINEFEX CONTEX CRYPT CRYPTOBURNERS CYCRON D-MOB "
- DC.B " DEAD HACK DEFJAM-CCS DEXION DIGITECH DOOM EXTREME FLASH PRODUCTIONS FRAXION FUSION GATE HACKTRICK HYPNOSIS IMMORTAL IPEC ELITE LEVEL 4 MAGNETIC FIELDS "
- DC.B " MAYHEM MEGADETH MIGHTY DRUIDS MIRACLE MIRAGE U.K. NO LIMITS PENDLE EUROPA # P.O.P. POSSE POWERLORDS U.K. POWERLORDS SWEDEN PROLOGIC PUSSY QUARTEX REBELS RED SECTOR-TCC RUBIDIUM SCIENCE 451 "
- DC.B " SCOOPEX AUSTRIA SILENTS U.K. SILENTS NORWAY SLIPSTREAM SUBWAY SYNCHRONOUS THE GIANTS THE HACKING RELATION TIMELORDS TRIAX T.W.A.T."
- DC.B " UNTOUCHABLES WARFALCONS WIZZCAT W.W.F.......... BYE BYE WRAP ",255
- EVEN
-
-
-
- ; **********************************************
- ; ** THE MUZAX PLAY ROUTINE FOR NOISE TRACKER **
- ; ******************************************
-
-
- MUZAX:
-
- jsr Cryptic_init
-
- end: rts
- Cryptic_init:
- lea Cryptic_data,a0
- add.l #$03b8,a0
- moveq #$7f,d0
- moveq #0,d1
- Cryptic_init1:
- move.l d1,d2
- subq.w #1,d0
- Cryptic_init2:
- move.b (a0)+,d1
- cmp.b d2,d1
- bgt.s Cryptic_init1
- dbf d0,Cryptic_init2
- addq.b #1,d2
- Cryptic_init3:
- lea Cryptic_data,a0
- lea Cryptic_sample1(pc),a1
- asl.l #8,d2
- asl.l #2,d2
- add.l #$438,d2
- add.l a0,d2
- moveq #$1e,d0
- Cryptic_init4:
- move.l d2,(a1)+
- moveq #0,d1
- move.w 42(a0),d1
- asl.l #1,d1
- add.l d1,d2
- add.l #$1e,a0
- dbf d0,Cryptic_init4
- lea Cryptic_sample1(PC),a0
- moveq #0,d0
- Cryptic_clear:
- move.l (a0,d0.w),a1
- clr.l (a1)
- addq.w #4,d0
- cmp.w #$7c,d0
- bne.s Cryptic_clear
- clr.w $dff0a8
- clr.w $dff0b8
- clr.w $dff0c8
- clr.w $dff0d8
- clr.l Cryptic_partnrplay
- clr.l Cryptic_partnote
- clr.l Cryptic_partpoint
- move.b Cryptic_data+$3b6,Cryptic_maxpart+1
- rts
- rts
- Cryptic_music:
- addq.w #1,Cryptic_counter
- Cryptic_cool:
- cmp.w #6,Cryptic_counter
- bne.s Cryptic_notsix
- clr.w Cryptic_counter
- bra Cryptic_rout2
- Cryptic_notsix:
- lea Cryptic_aud1temp(PC),a6
- tst.b 3(a6)
- beq.s Cryptic_arp1
- lea $dff0a0,a5
- bsr.s Cryptic_arprout
- Cryptic_arp1:
- lea Cryptic_aud2temp(PC),a6
- tst.b 3(a6)
- beq.s Cryptic_arp2
- lea $dff0b0,a5
- bsr.s Cryptic_arprout
- Cryptic_arp2:
- lea Cryptic_aud3temp(PC),a6
- tst.b 3(a6)
- beq.s Cryptic_arp3
- lea $dff0c0,a5
- bsr.s Cryptic_arprout
- Cryptic_arp3:
- lea Cryptic_aud4temp(PC),a6
- tst.b 3(a6)
- beq.s Cryptic_arp4
- lea $dff0d0,a5
- bra.s Cryptic_arprout
- Cryptic_arp4:
- rts
- Cryptic_arprout:
- move.b 2(a6),d0
- and.b #$0f,d0
- tst.b d0
- beq Cryptic_arpegrt
- cmp.b #$01,d0
- beq.s Cryptic_portup
- cmp.b #$02,d0
- beq.s Cryptic_portdwn
- cmp.b #$0a,d0
- beq.s Cryptic_volslide
- rts
- Cryptic_portup:
- moveq #0,d0
- move.b 3(a6),d0
- sub.w d0,22(a6)
- cmp.w #$71,22(a6)
- bpl.s Cryptic_ok1
- move.w #$71,22(a6)
- Cryptic_ok1:
- move.w 22(a6),6(a5)
- rts
- Cryptic_portdwn:
- moveq #0,d0
- move.b 3(a6),d0
- add.w d0,22(a6)
- cmp.w #$538,22(a6)
- bmi.s Cryptic_ok2
- move.w #$538,22(a6)
- Cryptic_ok2:
- move.w 22(a6),6(a5)
- rts
- Cryptic_volslide:
- moveq #0,d0
- move.b 3(a6),d0
- lsr.b #4,d0
- tst.b d0
- beq.s Cryptic_voldwn
- add.w d0,18(a6)
- cmp.w #64,18(a6)
- bmi.s Cryptic_ok3
- move.w #64,18(a6)
- Cryptic_ok3:
- move.w 18(a6),8(a5)
- rts
- Cryptic_voldwn:
- moveq #0,d0
- move.b 3(a6),d0
- and.b #$0f,d0
- sub.w d0,18(a6)
- bpl.s Cryptic_ok4
- clr.w 18(a6)
- Cryptic_ok4:
- move.w 18(a6),8(a5)
- rts
- Cryptic_arpegrt:
- move.w Cryptic_counter(PC),d0
- cmp.w #1,d0
- beq.s Cryptic_loop2
- cmp.w #2,d0
- beq.s Cryptic_loop3
- cmp.w #3,d0
- beq.s Cryptic_loop4
- cmp.w #4,d0
- beq.s Cryptic_loop2
- cmp.w #5,d0
- beq.s Cryptic_loop3
- rts
- Cryptic_loop2:
- moveq #0,d0
- move.b 3(a6),d0
- lsr.b #4,d0
- bra.s Cryptic_cont
- Cryptic_loop3:
- moveq #$00,d0
- move.b 3(a6),d0
- and.b #$0f,d0
- bra.s Cryptic_cont
- Cryptic_loop4:
- move.w 16(a6),d2
- bra.s Cryptic_endpart
- Cryptic_cont:
- add.w d0,d0
- moveq #0,d1
- move.w 16(a6),d1
- and.w #$fff,d1
- lea Cryptic_arpeggio(PC),a0
- Cryptic_loop5:
- move.w (a0,d0),d2
- cmp.w (a0),d1
- beq.s Cryptic_endpart
- addq.l #2,a0
- bra.s Cryptic_loop5
- Cryptic_endpart:
- move.w d2,6(a5)
- rts
- Cryptic_rout2:
- lea Cryptic_data,a0
- move.l a0,a3
- add.l #$0c,a3
- move.l a0,a2
- add.l #$3b8,a2
- add.l #$43c,a0
- move.l Cryptic_partnrplay(PC),d0
- moveq #0,d1
- move.b (a2,d0),d1
- asl.l #8,d1
- asl.l #2,d1
- add.l Cryptic_partnote(PC),d1
- move.l d1,Cryptic_partpoint
- clr.w Cryptic_dmacon
- lea $dff0a0,a5
- lea Cryptic_aud1temp(PC),a6
- bsr Cryptic_playit
- lea $dff0b0,a5
- lea Cryptic_aud2temp(PC),a6
- bsr Cryptic_playit
- lea $dff0c0,a5
- lea Cryptic_aud3temp(PC),a6
- bsr Cryptic_playit
- lea $dff0d0,a5
- lea Cryptic_aud4temp(PC),a6
- bsr Cryptic_playit
- move.w #$01f4,d0
- Cryptic_rls:
- dbf d0,Cryptic_rls
- move.w #$8000,d0
- or.w Cryptic_dmacon,d0
- move.w d0,$dff096
- lea Cryptic_aud4temp(PC),a6
- cmp.w #1,14(a6)
- bne.s Cryptic_voice3
- move.l 10(a6),$dff0d0
- move.w #1,$dff0d4
- Cryptic_voice3:
- lea Cryptic_aud3temp(PC),a6
- cmp.w #1,14(a6)
- bne.s Cryptic_voice2
- move.w #1,$dff0c4
- Cryptic_voice2:
- lea Cryptic_aud2temp(PC),a6
- cmp.w #1,14(a6)
- bne.s Cryptic_voice1
- move.l 10(a6),$dff0b0
- move.w #1,$dff0b4
- Cryptic_voice1:
- lea Cryptic_aud1temp(PC),a6
- cmp.w #1,14(a6)
- bne.s Cryptic_voice0
- move.l 10(a6),$dff0a0
- move.w #1,$dff0a4
- Cryptic_voice0:
- move.l Cryptic_partnote(PC),d0
- add.l #$10,d0
- move.l d0,Cryptic_partnote
- cmp.l #$400,d0
- bne.s Cryptic_stop
- Cryptic_higher:
- clr.l Cryptic_partnote
- addq.l #1,Cryptic_partnrplay
- moveq #0,d0
- move.w Cryptic_maxpart(PC),d0
- move.l Cryptic_partnrplay(PC),d1
- cmp.l d0,d1
- bne.s Cryptic_stop
- clr.l Cryptic_partnrplay
- ;st Pflag
- Cryptic_stop:
- tst.w Cryptic_status
- beq.s Cryptic_stop2
- clr.w Cryptic_status
- bra.s Cryptic_higher
- Cryptic_stop2:
- rts
- Cryptic_playit:
- move.l (a0,d1.l),(a6)
- addq.l #4,d1
- moveq #0,d2
- move.b 2(a6),d2
- and.b #$f0,d2
- lsr.b #4,d2
- move.b (a6),d0
- and.b #$f0,d0
- or.b d0,d2
- tst.b d2
- beq.s Cryptic_nosamplechange
- moveq #0,d3
- lea Cryptic_samples(PC),a1
- move.l d2,d4
- asl.l #2,d2
- mulu #$1e,d4
- move.l (a1,d2),4(a6)
- move.w (a3,d4.l),8(a6)
- move.w 2(a3,d4.l),18(a6)
- move.w 4(a3,d4.l),d3
- tst.w d3
- beq.s Cryptic_displace
- move.l 4(a6),d2
- add.l d3,d2
- move.l d2,4(a6)
- move.l d2,10(a6)
- move.w 6(a3,d4.l),8(a6)
- move.w 6(a3,d4.l),14(a6)
- move.w 18(a6),8(a5)
- bra.s Cryptic_nosamplechange
- Cryptic_displace:
- move.l 4(a6),d2
- add.l d3,d2
- move.l d2,10(a6)
- move.w 6(a3,d4.l),14(a6)
- move.w 18(a6),8(a5)
- Cryptic_nosamplechange:
- move.w (a6),d0
- and.w #$fff,d0
- tst.w d0
- beq.s Cryptic_retrout
- move.w (a6),16(a6)
- move.w 20(a6),$dff096
- move.l 4(a6),(a5)
- move.w 8(a6),4(a5)
- move.w (a6),d0
- and.w #$fff,d0
- move.w d0,6(a5)
- move.w 20(a6),d0
- or.w d0,Cryptic_dmacon
- Cryptic_retrout:
- tst.w (a6)
- beq.s Cryptic_nonewper
- move.w (a6),22(a6)
- Cryptic_nonewper:
- move.b 2(a6),d0
- and.b #$0f,d0
- cmp.b #$0b,d0
- beq.s Cryptic_posjmp
- cmp.b #$0c,d0
- beq.s Cryptic_setvol
- cmp.b #$0d,d0
- beq.s Cryptic_break
- cmp.b #$0e,d0
- beq.s Cryptic_setfil
- cmp.b #$0f,d0
- beq.s Cryptic_setspeed
- rts
- Cryptic_posjmp:
- not.w Cryptic_status
- moveq #0,d0
- move.b 3(a6),d0
- subq.b #1,d0
- move.l d0,Cryptic_partnrplay
- rts
- Cryptic_setvol:
- move.b 3(a6),8(a5)
- rts
- Cryptic_break:
- not.w Cryptic_status
- rts
- Cryptic_setfil:
- moveq #0,d0
- move.b 3(a6),d0
- and.b #1,d0
- rol.b #1,d0
- and.b #$fd,$bfe001
- or.b d0,$bfe001
- rts
- Cryptic_setspeed:
- move.b 3(a6),d0
- and.b #$0f,d0
- beq.s Cryptic_back
- clr.w Cryptic_counter
- move.b d0,Cryptic_cool+3
- Cryptic_back: rts
- Cryptic_aud1temp:
- dcb.w 10,0
- dc.w 1
- dcb.w 2,0
- Cryptic_aud2temp:
- dcb.w 10,0
- dc.w 2
- dcb.w 2,0
- Cryptic_aud3temp:
- dcb.w 10,0
- dc.w 4
- dcb.w 2,0
- Cryptic_aud4temp:
- dcb.w 10,0
- dc.w 8
- dcb.w 2,0
- Cryptic_partnote: dc.l 0
- Cryptic_partnrplay: dc.l 0
- Cryptic_counter: dc.w 0
- Cryptic_partpoint: dc.l 0
- Cryptic_samples: dc.l 0
- Cryptic_sample1: dcb.l 31,0
- Cryptic_maxpart: dc.w 0
- Cryptic_dmacon: dc.w 0
- Cryptic_status: dc.w 0
- Cryptic_arpeggio:
- dc.w $0358,$0328,$02fa,$02d0,$02a6,$0280,$025c
- dc.w $023a,$021a,$01fc,$01e0,$01c5,$01ac,$0194,$017d
- dc.w $0168,$0153,$0140,$012e,$011d,$010d,$00fe,$00f0
- dc.w $00e2,$00d6,$00ca,$00be,$00b4,$00aa,$00a0,$0097
- dc.w $008f,$0087,$007f,$0078,$0071,$0000,$0000,$0000
-
-
-
- ; ** THE COPPERLIST **
-
- OURCOPPER:
- sp0lo: dc.w spr0ptl,$0000
- sp0hi: dc.w spr0pth,$0000
- dc.w bpl1mod,0,bpl2mod,0
- dc.w diwstrt,$2c81+16,diwstop,$2cc1
- dc.w bplcon0,$1200,bplcon1,$0000
- dc.w ddfstrt,$38,ddfstop,$d0
- dc.w color00,$000,color01,$094
- dc.w color16,$aaa,color17,$aaa,color18,$aaa
- dc.w color19,$aaa,color20,$aaa
- bp1lo: dc.w bpl1ptl,$0000
- bp1hi: dc.w bpl1pth,$0000
- wait $2c09,$fffe
- dc.w color01,$f00
- wait $2e09,$fffe
- dc.w color01,$f11
- wait $3009,$fffe
- dc.w color01,$f00
- wait $3209,$fffe
- dc.w color01,$f11
- wait $3409,$fffe
- dc.w color01,$f22
- wait $3609,$fffe
- dc.w color01,$f33
- wait $389,$fffe
- dc.w color01,$f44
- wait $3a09,$fffe
- dc.w color01,$f55
- wait $3c09,$fffe
- dc.w color01,$f66
- wait $3e09,$fffe
- dc.w color01,$f77
- wait $4009,$fffe
- dc.w color01,$f88
- wait $4209,$fffe
- dc.w color01,$f99
- wait $4409,$fffe
- dc.w color01,$faa
- wait $4609,$fffe
- dc.w color01,$fbb
- wait $4809,$fffe
- dc.w color01,$fcc
- wait $4a09,$fffe
- dc.w color01,$fdd
- wait $4c09,$fffe
- dc.w color01,$fee
- wait $4e09,$fffe
- dc.w color01,$fff
- wait $5109,$fffe
- dc.w color01,$eef
- wait $5309,$fffe
- dc.w color01,$ddf
- wait $5509,$fffe
- dc.w color01,$ccf
- wait $5709,$fffe
- dc.w color01,$bbf
- wait $5909,$fffe
- dc.w color01,$aaf
- wait $5b09,$fffe
- dc.w color01,$99f
- wait $5d09,$fffe
- dc.w color01,$88f
- wait $5f09,$fffe
- dc.w color01,$77f
- wait $6109,$fffe
- dc.w color01,$66f
- wait $6309,$fffe
- dc.w color01,$55f
- wait $6509,$fffe
- dc.w color01,$44f
- wait $6709,$fffe
- dc.w color01,$33f
- wait $6909,$fffe
- dc.w color01,$22f
- wait $6a09,$fffe
- dc.w color01,$11f
- wait $6c09,$fffe
- dc.w color01,$00f
- wait $6e09,$fffe
- dc.w color01,$11f
- wait $7109,$fffe
- dc.w color01,$22f
- wait $7309,$fffe
- dc.w color01,$33f
- wait $7509,$fffe
- dc.w color01,$44f
- wait $7709,$fffe
- dc.w color01,$55f
- wait $7909,$fffe
- dc.w color01,$66f
- wait $7a09,$fffe
- dc.w color01,$77f
- wait $7c09,$fffe
- dc.w color01,$88f
- wait $7e09,$fffe
- dc.w color01,$99f
- wait $8009,$fffe
- dc.w color01,$aaf
- wait $8209,$fffe
- dc.w color01,$bbf
- wait $8409,$fffe
- dc.w color01,$ccf
- wait $8609,$fffe
- dc.w color01,$ddf
- wait $8809,$fffe
- dc.w color01,$eef
- wait $8a09,$fffe
- dc.w color01,$fff
- wait $8c09,$fffe
- dc.w color01,$fee
- wait $8e09,$fffe
- dc.w color01,$fdd
- wait $9109,$fffe
- dc.w color01,$fcc
- wait $9309,$fffe
- dc.w color01,$fbb
- wait $9509,$fffe
- dc.w color01,$faa
- wait $9709,$fffe
- wait $9909,$fffe
- dc.w color01,$f99
- wait $9b09,$fffe
- dc.w color01,$f88
- wait $9d09,$fffe
- dc.w color01,$f77
- wait $9f09,$fffe
- dc.w color01,$f66
- wait $a109,$fffe
- set_pal
- wait $0309,$fffe
- eq1: dc.w color00,$f00
- wait $0809,$fffe
- dc.w color00,$000
- wait $0c09,$fffe
- eq2: dc.w color00,$ff0
- wait $1009,$fffe
- dc.w color00,$000
- wait $1409,$fffe
- eq3: dc.w color00,$00f
- wait $1809,$fffe
- dc.w color00,$000
- wait $1b09,$fffe
- eq4: dc.w color00,$0f0
- wait $1f09,$fffe
- dc.w color00,$000
- wait $2309,$fffe
- end_copper
-
-
- ;LOCAL CONSTANTS
-
- WBCOPPER: DC.L 0
- GFXLIB: DC.B "graphics.library",0
- GFXBASE: DC.L 0
- systemints: dc.l 0
- scroll_offset: dc.l 0
- screenx: dc.l picture
- letter: dc.b 0
- acurent: dc.l message
- val: dc.l 0
- lo_amplitude: dc.l 1
- hi_amplitude: dc.l 2
- Tango Dc.l 0
- sin_screen: Dc.l SinePlane
- stopper: dc.l 0
-
-
- ;BINARY FILES TO BE INCLUDED
- EVEN
- picture
- dcb.b 10240,0
- SinePlane
- dcb.b 10240,0
- dcb.b 10240,0
- font
- incbin df0:neatfont.bin
- sprite:
- include df0:sprite.list
- Cryptic_data:
- incbin df0:mod.count
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-